home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Games Collection 1 / software vault.zip / software vault / CDR10 / MAPEDIT.ZIP / SAMPGAME / CYBER.BAK < prev    next >
Text File  |  1992-04-11  |  4KB  |  188 lines

  1. #include "cyber.h"
  2.  
  3. struct token_struct area[99]={
  4. {0,0,0,0,0},
  5. {241,255,145,159,2}, /*up*/
  6. {225,239,161,175,3}, /*left */
  7. {257,271,161,175,4}, /*right*/
  8. {241,255,177,191,5}, /*down*/
  9. {241,255,161,175,1}, /*middle*/
  10. {0,0,0,0,0}
  11. };
  12.  
  13. unsigned int num_tokens=5;
  14.  
  15. main()
  16. {
  17.  
  18.     char temps[128];
  19.     unsigned int x,y;
  20.     unsigned int token;
  21.  
  22.     if(!mousecheck())
  23.     {
  24.         printf("\nPlease install mouse driver!");
  25.         exit(0);
  26.     }
  27.     if(! (bufptr = (char far *)malloc(64001)))
  28.     {
  29.         printf("\nError allocating memory to bufptr.");
  30.         exit(0);
  31.     }
  32.     if(! (mapptr = (unsigned int far *)malloc(64001)))
  33.     {
  34.         printf("\nError allocating memory to mapptr.");
  35.         exit(0);
  36.     }
  37.     if(! (csptr = (unsigned char far *)malloc(64001)))
  38.     {
  39.         printf("\nError allocating memory to csptr.");
  40.         exit(0);
  41.     }
  42.     load_db();
  43.     vmode(0x13);
  44.     load_pcx("openscrn.pcx",bufptr);
  45.     show_screen();
  46.     load_map();
  47.     pause();
  48.     cls();
  49.     load_pcx("cyber.pcx",bufptr);
  50.     load_pcx("chset.pcx",csptr);
  51.     show_screen();
  52.     show_map();
  53.     mousecursor(1);
  54.     for(;;)
  55.     {
  56.         x=mousecol();
  57.         y=mouserow();
  58.         sprintf(temps,"X: %3d Y: %3d",x,y);
  59.         putxys(25,1,temps);
  60.         if(kbhit())
  61.         {
  62.             switch(toupper(getch()))
  63.             {
  64.             case 0:
  65.                 switch(getch())
  66.                 {
  67.                 case 45:   /* alt-x */
  68.                     token=1;
  69.                     break;
  70.                 }
  71.                 break;
  72.             }
  73.             do_token(token);
  74.         }
  75.         if (mousebuttons())
  76.         {
  77.             do_token(chkmouse(x,y));
  78.         }
  79.     }
  80. }
  81.  
  82. unsigned int chkmouse(unsigned int x,unsigned int y)
  83. {
  84.     unsigned int token,loop;
  85.  
  86.     token=0;
  87.     for(loop=1;loop<num_tokens+1;loop++)
  88.     {
  89.         if(x>area[loop].minx && x<area[loop].maxx && y>area[loop].miny && y < area[loop].maxy)
  90.             token=area[loop].token;
  91.     }
  92.     return(token);
  93. }
  94.  
  95. do_token(unsigned int token)
  96. {
  97.     if(!token)
  98.         return;
  99.     switch(token)
  100.     {
  101.         case 1:
  102.             exit_prog();
  103.             break;
  104.         case 2:
  105.             up();
  106.             break;
  107.         case 3:
  108.             left();
  109.             break;
  110.         case 4:
  111.             right();
  112.             break;
  113.         case 5:
  114.             down();
  115.             break;
  116.     }
  117. }
  118.  
  119. wprintf(char *format,...)
  120. {
  121.     char buffer[255];
  122.     va_list argument_ptr;
  123.  
  124.     va_start(argument_ptr,format);
  125.     vsprintf(buffer,format,argument_ptr);
  126.     scrollw();
  127.     putxys(25,16,buffer);
  128. }
  129.  
  130. scrollw()
  131. {
  132.     unsigned int loop;
  133.  
  134.     for(loop=TWOYS;loop<TWOYE-8;loop++)
  135.     {
  136.         memcpy(scrptr+loop*320+TWOXS,scrptr+(loop+8)*320+TWOXS,TWOXE-TWOXS+1);
  137.     }
  138.     for(loop=TWOYE-8;loop<TWOYE;loop++)
  139.     {
  140.         memset(scrptr+loop*320+TWOXS,0,TWOXE-TWOXS+1);
  141.     }
  142. }
  143.  
  144. pause()
  145. {
  146.     for(;;)
  147.     {
  148.         if(kbhit())
  149.         {
  150.             getch();
  151.             break;
  152.         }
  153.         if(mousebuttons())
  154.             break;
  155.     }
  156. }
  157.  
  158. cls()
  159. {
  160.     memset(scrptr,0,64000);
  161. }
  162.  
  163. load_db()
  164. {
  165.     FILE * fptr;
  166.     int loop;
  167.  
  168.     if(!(fptr=fopen("sprites.dat","rb")))
  169.     {
  170.         printf("could not open Sprite Data file !");
  171.         exit(0);
  172.     }
  173.     fread(&db,sizeof(db),1,fptr);
  174.     fread(&si[0],sizeof(struct sprite_struct),100,fptr);
  175.     for(loop=0;loop<db.num_sprites;loop++)
  176.     {
  177.         if(!(si[loop].pict=(char far *) malloc(si[loop].width*si[loop].height)))
  178.         {
  179.             vmode(3);
  180.             printf("Error Allocating memory for sprite %d!",loop);
  181.             exit;
  182.         }
  183.         fread(si[loop].pict,si[loop].width*si[loop].height,1,fptr);
  184.     }
  185. }
  186.  
  187.  
  188.